﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

//int main()
//{
//	int a;
//	int b;
//	int c;
//	int d;
//
//	int* p1 = new int;
//	int* p2 = new int;
//	int* p3 = new int;
//	int* p4 = new int;
//
//	cout << &a << endl;
//	cout << &b << endl;
//	cout << &c << endl;
//	cout << &d << endl;
//
//	cout << p1 << endl;
//	cout << p2 << endl;
//	cout << p3 << endl;
//	cout << p4 << endl;
//
//
//	return 0;
//}
//int main()
//{
//	/*A* pclassa = new A[5];
//
//	delete pclassa;*/
//
//	
//	return 0;
//}
//class A
//{
//public:
//	A()
//	{
//		cout << "A()" << endl;
//	}
//
//	~A()
//	{
//		cout << "~A()" << endl;
//	}
//
//private:
//	int _a = 0;
//};
//

//int main()
//{
//	A* pa = new A();
//
//	B b;
//
//	static D d;
//
//	delete pa;
//	return 0;
//}

//class Date
//{
//public:
//    Date(int year = 1900, int month = 1, int day = 1)
//    {
//        _year = year;
//        _month = month;
//        _day = day;
//    }
//
//    Date(const Date& d)
//    {
//        _year = d._year;
//        _month = d._month;
//        _day = d._day;
//    }
//
//    Date& operator=(const Date& d)
//    {
//        if (this != &d)
//        {
//            _year = d._year;
//            _month = d._month;
//            _day = d._day;
//        }
//
//        return *this;
//    }
//
//    //前置++（先+1，再使用）
//    Date& operator++()
//    {
//        _day += 1;
//        return *this;
//    }
//
//    //后置++（先使用，再+1）
//    Date operator++(int)
//    {
//        Date temp(*this);
//        _day += 1;
//        return temp;
//    }
//
//    void Print()
//    {
//        cout << _year << "-" << _month << "-" << _day << endl;
//    }
//private:
//    int _year;
//    int _month;
//    int _day;
//};
//void Test()
//{
//    Date d1(2000,2,2);
//    Date d2(1000,1,1);
//    d1.Print();
//    d2.Print();
//
//    Date d3, d4;
//
//    d3 = d1++;
//    d4 = ++d2;
//
//    d3.Print();
//    d4.Print();
//}
//int main()
//{
//    Test();
//    return 0;
//}

//Date& operator=(Date& d1, const Date& d2)
//{
//    if (&d1 != &d2)
//    {
//        d1._year = d2._year;
//        d1._month = d2._month;
//        d1._day = d2._day;
//    }
//
//    return d2;
//}
//void Test()
//{
//    Date d1(2018, 9, 26);
//    Date d2(2018, 9, 27);
//    d2 = d2;
//}
//
//int main()
//{
//    Test();
//    return 0;
//}

//class A
//{
//public:
//	A(int a=1, int n=5)
//	{
//		_a = a;
//		_p = new int[5]{ 0 };
//	}
//	
//	~A()
//	{
//		delete[] _p;
//		_p = nullptr;
//	}
//private:
//	int _a;
//	int* _p;
//};
//
//int main()
//{
//	A a1(1,2);
//	A a2(3,4);
//
//	a1 = a2;
//
//	return 0;
//}

//class Date
//{
//public:
//	Date(int year, int month, int day)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//	void Print()//void Print(Date * const this)
//	{
//		cout << _year << "-" << _month << "-" << _day << endl;
//	}
//	void Print() const//void Print(const Date * const this)
//	{
//		cout << _year << "-" << _month << "-" << _day << endl;
//	}
//private:
//	int _year; 
//	int _month; 
//	int _day; 
//};

//class A
//{
//public:
//	void func1()
//	{}
//
//	void func2() const
//	{}
//
//	void func3()
//	{
//		func2();
//	}
//
//	void func4()const
//	{
//		func1();
//	}
//
//private:
//	int _a = 1;
//};
//
//int main()
//{
//	A a1;
//	const A a2;
//
//	a1.func1();
//	a1.func2();
//
//	a2.func1();
//	a2.func2();
//}

class Date
{
public:
	Date* operator&()
	{
		return this;
	}
	const Date* operator&()const
	{
		return this;
	}
private:
	int _year; 
	int _month;
	int _day; 
};

int main()
{
	return 0;
}
